﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;

namespace Jurassic_Island
{
    public class ENObjetoMochila
    {
        private int id;
        private int partida;
        private string objeto;

        private CADObjetoMochila cadObjMochila = new CADObjetoMochila();
        private String nombreTabla = "Objetos_Mochila";

        public ENObjetoMochila()
        {
            id = 0;
            partida = 0;
            objeto = "";
        }

        public ENObjetoMochila(ENObjetoMochila enObjMochila)
        {
            id = enObjMochila.id;
            partida = enObjMochila.partida;
            objeto = enObjMochila.objeto;
        }

        public ENObjetoMochila(int id_objmoch, int partida_objmoch, string objeto_objmoch)
        {
            id = id_objmoch;
            partida = partida_objmoch;
            objeto = objeto_objmoch;
        }

        public ENObjetoMochila(DataRow drObjMochila)
        {
            id = int.Parse(drObjMochila["id_objmoch"].ToString());
            partida = int.Parse(drObjMochila["partida_objmoch"].ToString());
            objeto = drObjMochila["objeto_objmoch"].ToString();
        }

        public int ID
        {
            get { return id; }
            set { id = value; }
        }

        public int Partida
        {
            get { return partida; }
            set { partida = value; }
        }

        public string Objeto
        {
            get { return objeto; }
            set { objeto = value; }
        }

        public bool ActualizarObjetoMochila()
        {
            bool salida = false;

            try
            {
                DataSet dsObjMochila = ObtenerListaObjetosMochila();
                DataRow drPartida = dsObjMochila.Tables[nombreTabla].Rows.Find(ID);
                drPartida["id_objmoch"] = ID.ToString();
                drPartida["partida_objmoch"] = Partida.ToString();
                drPartida["objeto_objmoch"] = Objeto;
                cadObjMochila.ActualizarObjetosMochila(dsObjMochila);
            }
            catch (Exception)
            {
                salida = false;
            }

            return salida;
        }

        public DataSet ObtenerListaObjetosMochila()
        {
            DataSet resultado = new DataSet();
            try
            {
                resultado = cadObjMochila.ObtenerTablaObjetosMochila();
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public DataSet ObtenerListaObjetosMochilaPorID(int id)
        {
            DataSet resultado = new DataSet();
            try
            {
                resultado = cadObjMochila.ObtenerTablaObjMochilaPorID(id);
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public DataSet ObtenerListaObjetosMochilaPorPartida(int partida)
        {
            DataSet resultado = new DataSet();
            try
            {
                resultado = cadObjMochila.ObtenerTablaObjMochilaPorPartida(partida);
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public bool ActualizarPartidas(DataSet dsObjMochila)
        {
            bool resultado = false;

            try
            {
                resultado = cadObjMochila.ActualizarObjetosMochila(dsObjMochila);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return resultado;
        }

        public bool EliminarPartida()
        {
            bool resultado = false;

            try
            {
                DataSet dsObjMochila = cadObjMochila.ObtenerTablaObjetosMochila();

                dsObjMochila.Tables[nombreTabla].Rows.Find(id).Delete();

                resultado = cadObjMochila.ActualizarObjetosMochila(dsObjMochila);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return resultado;
        }

        public bool AñadirObjetoMochila()
        {
            bool resultado = false;

            try
            {
                DataSet dsObjMochila = cadObjMochila.ObtenerTablaObjetosMochila();

                DataRow dr = dsObjMochila.Tables[nombreTabla].NewRow();

                dr["id_objmoch"] = ID.ToString();
                dr["partida_objmoch"] = Partida.ToString();
                dr["objeto_objmoch"] = Objeto;

                dsObjMochila.Tables[nombreTabla].Rows.Add(dr);


                resultado = cadObjMochila.ActualizarObjetosMochila(dsObjMochila);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return resultado;
        }
    }
}
